From 9949c1ba6964fb2230d02dfe8385091c13e3589c Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Mon, 18 Jul 2011 14:52:30 +0100 Subject: [PATCH] libxl: use libxl_domain_type enum with libxl__domain_suspend_common Signed-off-by: Ian Campbell Acked-by: Ian Jackson Committed-by: Ian Jackson --- tools/libxl/libxl.c | 6 +++--- tools/libxl/libxl_dom.c | 16 ++++++++++++++-- tools/libxl/libxl_internal.h | 4 +++- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index f7bd3b0293..4310a9f7df 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -474,13 +474,13 @@ int libxl_domain_suspend(libxl_ctx *ctx, libxl_domain_suspend_info *info, uint32_t domid, int fd) { libxl__gc gc = LIBXL_INIT_GC(ctx); - int hvm = LIBXL__DOMAIN_IS_TYPE(&gc, domid, HVM); + libxl_domain_type type = libxl__domain_type(&gc, domid); int live = info != NULL && info->flags & XL_SUSPEND_LIVE; int debug = info != NULL && info->flags & XL_SUSPEND_DEBUG; int rc = 0; - rc = libxl__domain_suspend_common(&gc, domid, fd, hvm, live, debug); - if (!rc && hvm) + rc = libxl__domain_suspend_common(&gc, domid, fd, type, live, debug); + if (!rc && type == LIBXL_DOMAIN_TYPE_HVM) rc = libxl__domain_save_device_model(&gc, domid, fd); libxl__free_all(&gc); return rc; diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index 3491736435..6c540a4aee 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -513,14 +513,26 @@ static int libxl__domain_suspend_common_callback(void *data) } int libxl__domain_suspend_common(libxl__gc *gc, uint32_t domid, int fd, - int hvm, int live, int debug) + libxl_domain_type type, + int live, int debug) { libxl_ctx *ctx = libxl__gc_owner(gc); int flags; int port; struct save_callbacks callbacks; struct suspendinfo si; - int rc = ERROR_FAIL; + int hvm, rc = ERROR_FAIL; + + switch (type) { + case LIBXL_DOMAIN_TYPE_HVM: + hvm = 1; + break; + case LIBXL_DOMAIN_TYPE_PV: + hvm = 0; + break; + default: + return ERROR_INVAL; + } flags = (live) ? XCFLAGS_LIVE : 0 | (debug) ? XCFLAGS_DEBUG : 0 diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index b2811f8532..9570bc3be7 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -199,7 +199,9 @@ _hidden int libxl__domain_restore_common(libxl__gc *gc, uint32_t domid, libxl_domain_build_info *info, libxl__domain_build_state *state, int fd); -_hidden int libxl__domain_suspend_common(libxl__gc *gc, uint32_t domid, int fd, int hvm, int live, int debug); +_hidden int libxl__domain_suspend_common(libxl__gc *gc, uint32_t domid, int fd, + libxl_domain_type type, + int live, int debug); _hidden int libxl__domain_save_device_model(libxl__gc *gc, uint32_t domid, int fd); _hidden void libxl__userdata_destroyall(libxl__gc *gc, uint32_t domid); -- 2.30.2